SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_BANC_D08]    
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS                     --*/    
/*---Sistema              : Tesoreria                  --*/    
/*---M¸dulo               : Empresa                    --*/    
/*---Programa             : Anulaci©n                  --*/    
/*---                       Movimiento Bancos (Libre)  --*/    
/*---                       (Ingresos)                 --*/    
/*---Script               : tcmovi_b.sql               --*/    
/*---Nombre SP            : SP_TCMOVI_BANC_D08         --*/    
/*---Desarrollado por     : Javier Flores A.           --*/    
/*---Fecha Creaci¸n       : 08/07/1999                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versi¸n              : 7.0                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/      
/*---ModIficado 1 por     :Maribel Julca Rodriguez     --*/      
/*---Fecha ModIficaci,n   :22/01/2005                  --*/       
/*---Detalle ModIficaci,n :ingreso de campos CO_USUA_CREA, CO_USUA_MODI --*/      
/*-------------------------------------------------------*/      
    
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TCMOVI_BANC_D08                      --*/    
/*---Grant all on SP_TCMOVI_BANC_D08 to public         --*/     
/*---SP_TCMOVI_BANC_D08                                --*/    
/*-------------------------------------------------------*/    
 @ISCO_EMPR TD_VC_002,     
 @ISCO_USUA_MODI TD_VC_008_USUA,    
 @ISCO_BANC TD_VC_003,     
 @ISNU_CNTA_BANC TD_VC_020,    
 @ISAA_BNCO TD_VC_004,     
 @ISMM_BNCO TD_VC_002,     
 @ISTI_MOVI_BANC TD_VC_001,      
 @ISNU_COMP_BANC TD_VC_008,     
 @INIM_MOVI TD_NU_016_004,    
 @ISCO_TIPO_OPER TD_VC_003,    
 @IDFE_ANUL TD_DT_001,    
 @ISDE_OBSE TD_VC_100,
 @ISCO_UNID_CNTB TD_VC_003
 As  
Declare     
    @VSCO_TIPO_INAN TD_VC_003,    
    @VSST_GEAS_ANUL TD_VC_001,    
    @VSCO_TIPO_OPE1 TD_VC_003,     
 

/* a) Variables de extorno */  

 @VSCO_UNID_CONC TD_VC_003,  
 @VDFE_OPER  TD_DT_001,  
 @OSNU_ASTO  TD_VC_010,  
 
 @VSST_INTE_BACH TD_VC_001,  
 @VSST_ASTO_RESU TD_VC_001,  
 @VSTI_OPNI_CARG TD_VC_001,  
 @VSTI_OPNI_ABON TD_VC_001  
   
 Begin Tran SP_TCMOVI_BANC_D08    
    
      SELECT @VSCO_TIPO_INAN = CO_TIPO_OPER, @VSST_GEAS_ANUL = ST_GEAS_ANUL ,
     @VSST_INTE_BACH = ST_INTE_BACH,    
   @VSTI_OPNI_CARG = CO_TIPO_OPEG, @VSTI_OPNI_ABON = CO_TIPO_OPER  
  
   
      FROM   TMPARA_TESO     
      WHERE  CO_EMPR = @ISCO_EMPR  


 Select @VDFE_OPER = FE_OPER,  
   @VSCO_UNID_CONC = CO_UNID_CONC  
 From   TCMOVI_BANC      
 Where  CO_EMPR = @ISCO_EMPR      
 And    CO_UNID_CONC = @ISCO_UNID_CNTB
 And    CO_BANC = @ISCO_BANC      
 And    NU_CNTA_BANC = @ISNU_CNTA_BANC      
 And    AA_BNCO = @ISAA_BNCO      
 And    MM_BNCO = @ISMM_BNCO      
 And    TI_MOVI_BANC = @ISTI_MOVI_BANC      
 And    NU_COMP_BANC = @ISNU_COMP_BANC    
    
      If @VSST_GEAS_ANUL = 'N'    
         Select @VSCO_TIPO_OPE1 = @VSCO_TIPO_INAN    
      Else        
        Select @VSCO_TIPO_OPE1 = @ISCO_TIPO_OPER    
 
If  @VDFE_OPER < @IDFE_ANUL And Month( @VDFE_OPER ) != Month( @IDFE_ANUL ) 
   
      Update  TCMOVI_BANC    
      Set     TI_SITU = 'EXT',     
              DE_OBSE = @ISDE_OBSE,    
              CO_TIPO_OPER = @VSCO_TIPO_OPE1,    
              CO_USUA_MODI = @ISCO_USUA_MODI,    
              FE_USUA_MODI = GETDATE()    
      Where   CO_EMPR = @ISCO_EMPR      
      And     CO_UNID_CONC = @ISCO_UNID_CNTB
      And     CO_BANC = @ISCO_BANC     
      And     NU_CNTA_BANC = @ISNU_CNTA_BANC     
      And     AA_BNCO = @ISAA_BNCO    
      And     MM_BNCO = @ISMM_BNCO    
      And     TI_MOVI_BANC = @ISTI_MOVI_BANC     
      And     NU_COMP_BANC = @ISNU_COMP_BANC     

Else
      Update  TCMOVI_BANC    
      Set     TI_SITU = 'ANU',     
              DE_OBSE = @ISDE_OBSE,    
              CO_TIPO_OPER = @VSCO_TIPO_OPE1,    
              CO_USUA_MODI = @ISCO_USUA_MODI,    
              FE_USUA_MODI = GETDATE()    
      Where   CO_EMPR = @ISCO_EMPR      
      And     CO_UNID_CONC = @ISCO_UNID_CNTB
      And     CO_BANC = @ISCO_BANC     
      And     NU_CNTA_BANC = @ISNU_CNTA_BANC     
      And     AA_BNCO = @ISAA_BNCO    
      And     MM_BNCO = @ISMM_BNCO    
      And     TI_MOVI_BANC = @ISTI_MOVI_BANC     
      And     NU_COMP_BANC = @ISNU_COMP_BANC     
    
      If @@error <> 0    
         Begin    
           Rollback Tran    
           Return    
         End    
    
    /**-----Verifica si se genera asientos Resumidos ------*/   
 Select @VSST_ASTO_RESU = Max(IsNull( t1.ST_ASTO_RESU, 'S'))        
 From   TMOPRC_RESU t1 , TDTIPO_OPER t2        
 Where  t2.CO_EMPR = @ISCO_EMPR And        
 t2.CO_TIPO_OPER = @ISCO_TIPO_OPER And        
 t1.CO_EMPR = t2.CO_EMPR And        
 t1.CO_OPRC_CNTB = t2.CO_OPRC_CNTB     
  
  /**-----Fin de la Validacion de Asientos Resumidos e Interfase en Bach ------*/   
    If @VSST_INTE_BACH = 'N' AND @VSST_ASTO_RESU = 'N' AND   
  @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON And  
  @VDFE_OPER < @IDFE_ANUL And Month( @VDFE_OPER ) != Month( @IDFE_ANUL )  
 Begin  
     
  /*-----Optiene el Numero de Asiento -----*/      
  EXEC SP_TTULTI_ASTO_Q01 @ISCO_EMPR, @ISCO_USUA_MODI, @VSCO_UNID_CONC, @VSCO_TIPO_OPE1, @IDFE_ANUL, @OSNU_ASTO OUTPUT    
  IF (@@ERROR != 0)        
  Begin    
   RollBack Tran  SP_TTAMAR_NCCA_D01  
   Return    
  End    
  
 End    

      Insert into TTBANC_ANUL (CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,     
      CO_TIPO_OPER, FE_ANUL, NU_ASTO, ST_CONT, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_UNID_CONC)
      Values (@ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC, @ISNU_COMP_BANC,     
              @VSCO_TIPO_OPE1,  @IDFE_ANUL, @OSNU_ASTO, 'N', @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE(), 
@ISCO_UNID_CNTB)    
    
      If @@error <> 0    
        Begin    
           Rollback tran    
      Return    
         End    
    
Commit Tran    
    
/*------------------------- Fin ------------------------------*/


GO
